/********************************************************************/ /** RICERCA.C **/ /** soluzione compito del 28/1/98: es. 1 **/ /********************************************************************/ #include #include #include "dato.h" /* Funzione leggi_dati. Acquisisce un vettore di dati da un file. Ritorna due vettori di puntatori ai dati (by reference), tali da poter essere ordinati secondo due criteri diversi. Il valore ritornato e' il numero di dati letti; */ int leggi_dati( char *file, /* nome del file */ dato_t ***p1, dato_t ***p2 ) { int i, ndati; dato_t *d; FILE *fp; char riga[MAXC]; /* conteggio righe del file */ fp = fopen(file,"r"); if (fp == NULL) return 0; for (i=0; fgets(riga,MAXC,fp)!=NULL; i++); ndati=i/3; fclose(fp); /* alloca vettori */ *p1 = malloc(sizeof(dato_t *)*ndati); *p2 = malloc(sizeof(dato_t *)*ndati); if (p1 == NULL)||(p2 == NULL)) return 0; /* lettura dati */ fp = fopen(file,"r"); if (fp == NULL) return 0; for (i=0; i